package reflect;

import java.lang.reflect.Method;
import java.util.Map;
import java.util.Scanner;

/**
 * @author liyang
 * @version 1.0
 * @package reflect
 * @file ReflectDemo1.java
 * @description
 * @time 2024/6/23 上午10:52
 */
public class ReflectDemo1 {
    public static void main(String[] args) throws ClassNotFoundException{
        /*两个例子，都可以用*/
        /*Class cls = String.class;*/
        /*Class cls = Map.class;*/

//        一直改不符合程序需求➡用完全限定名来获取该类的类对象。➡用Scanner实现灵活变化
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入要查询的类名: ");
        String className = scanner.nextLine();
        Class cls = Class.forName(className);
//        要全名
        String name = cls.getName();
        System.out.println(name);
//        只要包名
        String pname = cls.getPackage().getName();
        System.out.println(pname);
//        只要名
        name = cls.getSimpleName();
        System.out.println(name);


        Method[] methods = cls.getDeclaredMethods();
        for(Method m : methods){
            String methodName = m.getName();
            System.out.println(methodName);
        }
    }
}
